common.skill

AWK এ Data Filtering এবং Sorting (Data Filtering and Sorting in AWK)

Computer Programming - অক (Awk)
251
251

AWK এ Data Filtering এবং Sorting (Data Filtering and Sorting in AWK)

AWK একটি শক্তিশালী টুল যা টেক্সট ডেটা প্রসেসিং এবং ফিল্টারিংয়ে বিশেষজ্ঞ। এটি ডেটা থেকে নির্দিষ্ট প্যাটার্ন বের করতে এবং প্রয়োজনীয় আউটপুট প্রদানে সহায়তা করে। যদিও AWK নিজেই সরাসরি ডেটা সর্টিং (sorting) ফাংশন প্রদান করে না, তবে এটি ব্যবহার করে সহজ পদ্ধতিতে ডেটা ফিল্টার করা যায় এবং Shell কমান্ড বা অন্যান্য টুলের সঙ্গে ব্যবহার করে সর্টিং করা সম্ভব।


Data Filtering in AWK

AWK এর মাধ্যমে নির্দিষ্ট প্যাটার্নের ভিত্তিতে ডেটা ফিল্টার করা যায়। AWK এ নিয়মিত এক্সপ্রেশন এবং শর্ত ব্যবহার করে ডেটা ফিল্টার করা খুবই সহজ।

উদাহরণ ১: নির্দিষ্ট প্যাটার্ন খোঁজা

awk '/pattern/ {print $0}' filename.txt

এটি filename.txt ফাইলের মধ্যে pattern শব্দটি থাকা প্রতিটি লাইন প্রিন্ট করবে।

উদাহরণ ২: নির্দিষ্ট শর্তের ভিত্তিতে ফিল্টার

awk '$3 > 100 {print $1, $3}' filename.txt

এটি filename.txt ফাইলের তৃতীয় কলামের মান ১০০ এর বেশি হলে প্রথম এবং তৃতীয় কলাম প্রিন্ট করবে।


Multiple Conditions ব্যবহার করে Filtering

AWK এ লজিক্যাল অপারেটর (&&, ||) ব্যবহার করে একাধিক শর্তের ভিত্তিতে ডেটা ফিল্টার করা যায়।

উদাহরণ ৩: একাধিক শর্তের ভিত্তিতে ফিল্টার

awk '$2 > 50 && $3 < 200 {print $1, $2, $3}' filename.txt

এটি filename.txt ফাইলের দ্বিতীয় কলামের মান ৫০ এর বেশি এবং তৃতীয় কলামের মান ২০০ এর কম হলে প্রথম তিনটি কলাম প্রিন্ট করবে।


Data Sorting in AWK

যদিও AWK নিজেই ডেটা সর্টিং করতে পারে না, তবে sort কমান্ড ব্যবহার করে Shell এর মধ্যে AWK এর আউটপুট সর্ট করা যায়।

উদাহরণ ৪: AWK এর আউটপুট সর্ট করা

awk '{print $1, $3}' filename.txt | sort -k2,2n

এটি filename.txt ফাইলের প্রথম এবং তৃতীয় কলাম প্রিন্ট করবে এবং তৃতীয় কলামের মানের ভিত্তিতে সংখ্যা অনুযায়ী সর্ট করবে।


AWK এর মাধ্যমে Custom Sorting

AWK স্ক্রিপ্টে কাস্টম সর্টিং লজিক তৈরি করা সম্ভব, তবে এটি আরও জটিল হতে পারে। AWK এর মধ্যে কাস্টম সর্টিং লজিক যোগ করার একটি উদাহরণ:

{
    arr[NR] = $0
    keys[NR] = $2  # Sort based on second column
}

END {
    n = asort(keys)
    for (i = 1; i <= n; i++) {
        print arr[i]
    }
}

উল্লেখ্য, asort() ফাংশন শুধুমাত্র নতুন AWK সংস্করণে উপলব্ধ।


AWK এর সঙ্গে sort কমান্ডের ব্যবহার

AWK এর সঙ্গে sort কমান্ড ব্যবহার করে দ্রুত এবং কার্যকরভাবে ডেটা সর্ট করা সম্ভব।

উদাহরণ ৫: সম্পূর্ণ কমান্ড

awk '{print $2, $1}' filename.txt | sort -k1,1 -r

এটি filename.txt ফাইলের দ্বিতীয় এবং প্রথম কলাম প্রিন্ট করবে এবং প্রথম কলামের মান অনুযায়ী রিভার্স সর্ট করবে।


সারসংক্ষেপ

AWK ব্যবহার করে ডেটা ফিল্টার করা সহজ এবং কার্যকর। যদিও AWK নিজেই সরাসরি ডেটা সর্ট করতে পারে না, Shell এর অন্যান্য টুল যেমন sort ব্যবহার করে AWK এর আউটপুট সর্ট করা যায়। AWK এর মাধ্যমে ফিল্টারিং এবং Shell এর সর্টিং ক্ষমতা একত্রে ব্যবহার করে ব্যবহারকারীরা বড় আকারের ডেটাসেট সহজেই বিশ্লেষণ করতে পারেন।

common.content_added_by

Data Filtering Techniques এবং তার প্রয়োগ

191
191

Data Filtering Techniques এবং তার প্রয়োগ

Data Filtering হল ডেটা প্রক্রিয়াকরণের একটি গুরুত্বপূর্ণ প্রক্রিয়া, যার মাধ্যমে বড় ডেটাসেট থেকে নির্দিষ্ট প্যাটার্ন বা শর্ত অনুযায়ী ডেটা বের করা হয়। AWK, Python, এবং Shell স্ক্রিপ্টের মতো টুল এবং প্রোগ্রামিং ভাষাগুলিতে ডেটা ফিল্টারিং প্রক্রিয়াটি সহজে করা যায়। এখানে AWK-এর মাধ্যমে Data Filtering-এর কিছু গুরুত্বপূর্ণ টেকনিক এবং তার প্রয়োগ নিয়ে আলোচনা করা হলো।


1. শর্ত ব্যবহার করে ডেটা ফিল্টারিং

AWK-তে ডেটা ফিল্টারিং সাধারণত শর্ত (condition) ব্যবহার করে করা হয়। AWK প্রতিটি লাইনের ডেটা পড়ে এবং যদি শর্ত সত্য হয়, তাহলে নির্দিষ্ট কার্যক্রম (action) কার্যকর হয়।

উদাহরণ:

awk '$3 > 50 { print $0 }' data.txt

এই কমান্ডটি data.txt ফাইলের তৃতীয় ফিল্ডের মান 50 এর বেশি হলে পুরো লাইন প্রিন্ট করবে।


2. নির্দিষ্ট শব্দ বা প্যাটার্ন দিয়ে ফিল্টারিং

AWK-তে নির্দিষ্ট শব্দ বা প্যাটার্নের সাথে মিলে যাওয়া লাইন ফিল্টার করার জন্য নিয়মিত এক্সপ্রেশন ব্যবহার করা যায়।

উদাহরণ:

awk '/error/ { print $0 }' logfile.txt

এই কমান্ডটি logfile.txt ফাইল থেকে error শব্দটি থাকা সব লাইন প্রিন্ট করবে।


3. ফিল্ডের উপর ভিত্তি করে ফিল্টারিং

AWK ব্যবহার করে নির্দিষ্ট ফিল্ডের মানের ভিত্তিতে ডেটা ফিল্টার করা যায়। $ চিহ্ন ব্যবহার করে ফিল্ড নির্বাচন করা হয়।

উদাহরণ:

awk '$1 == "Alice" { print $2, $3 }' data.txt

এই কমান্ডটি data.txt ফাইল থেকে প্রথম ফিল্ডে "Alice" থাকা লাইনগুলির দ্বিতীয় এবং তৃতীয় ফিল্ড প্রিন্ট করবে।


4. লজিক্যাল অপারেটর দিয়ে শর্ত মিলানো

AWK-তে লজিক্যাল অপারেটর (&&, ||, !) ব্যবহার করে একাধিক শর্ত একসাথে মিলিয়ে ডেটা ফিল্টার করা যায়।

উদাহরণ:

awk '$2 > 20 && $3 < 100 { print $1, $2, $3 }' data.txt

এই কমান্ডটি data.txt ফাইল থেকে সেই লাইনগুলো প্রিন্ট করবে যেগুলির দ্বিতীয় ফিল্ডের মান 20 এর বেশি এবং তৃতীয় ফিল্ডের মান 100 এর কম।


5. BEGIN এবং END ব্লক ব্যবহার করে প্রক্রিয়াকরণ

AWK-তে BEGIN এবং END ব্লক ব্যবহার করে ডেটা প্রক্রিয়াকরণের আগে এবং পরে কার্যক্রম পরিচালনা করা যায়।

উদাহরণ:

awk 'BEGIN { print "Processing Data..." }
$2 > 50 { count++ }
END { print "Total number of records with second field > 50:", count }' data.txt

এই স্ক্রিপ্টটি data.txt ফাইলের দ্বিতীয় ফিল্ডের মান 50 এর বেশি হলে সেগুলোর সংখ্যা গণনা করবে এবং শেষে আউটপুট প্রিন্ট করবে।


6. নির্দিষ্ট ফিল্ডের মিল খুঁজে বের করা

AWK-এর ~ অপারেটর ব্যবহার করে ফিল্ডের মধ্যে নিয়মিত এক্সপ্রেশন মিল খুঁজে বের করা যায়।

উদাহরণ:

awk '$1 ~ /^[A-Z]/ { print $0 }' data.txt

এই কমান্ডটি data.txt ফাইল থেকে প্রথম ফিল্ডে বড় হাতের অক্ষর দিয়ে শুরু হওয়া লাইনগুলো প্রিন্ট করবে।


Data Filtering-এর অন্যান্য টেকনিক

  • ফিল্টার করা ডেটা সংরক্ষণ করা:

    awk '$3 > 100 { print $0 }' data.txt > filtered_data.txt

    এই কমান্ডটি ফিল্টার করা ডেটা filtered_data.txt ফাইলে সংরক্ষণ করবে।

  • গণনা এবং গড় বের করা:

    awk '{ sum += $2; count++ } END { print "Average:", sum / count }' data.txt

    এই স্ক্রিপ্টটি data.txt ফাইলের দ্বিতীয় ফিল্ডের গড় নির্ণয় করবে।


সারসংক্ষেপ

Data Filtering একটি গুরুত্বপূর্ণ প্রক্রিয়া, যা বড় আকারের ডেটাসেট থেকে নির্দিষ্ট ডেটা বের করতে সহায়ক। AWK-এর মাধ্যমে শর্ত, নিয়মিত এক্সপ্রেশন এবং লজিক্যাল অপারেটর ব্যবহার করে সহজেই ডেটা ফিল্টার করা যায়। Data Filtering টেকনিক ব্যবহার করে ডেটা বিশ্লেষণ এবং প্রক্রিয়াকরণ আরও কার্যকর এবং সঠিক করা সম্ভব।

common.content_added_by

Data Sorting এবং Custom Sort Function

208
208

AWK এ Data Sorting এবং Custom Sort Function

AWK সাধারণত ডেটা প্রক্রিয়াকরণের জন্য ব্যবহৃত হয়, তবে এতে বিল্ট-ইন sort ফাংশন নেই। তবে, AWK এ আমরা ডেটা সনির্দিষ্টভাবে সাজানোর জন্য কাস্টম ফাংশন তৈরি করতে পারি। এখানে, AWK এ কীভাবে ডেটা সনির্দিষ্টভাবে সাজানো যায় এবং কাস্টম সোর্ট ফাংশন ব্যবহার করা যায় তার উদাহরণ দেওয়া হলো।

সাধারণ ধারণা: AWK এবং Data Sorting

যদিও AWK নিজে থেকেই ডেটা সোর্ট করার জন্য বিল্ট-ইন ফাংশন সরবরাহ করে না, AWK স্ক্রিপ্টের মধ্যে অ্যারে ব্যবহার করে এবং বাইরের কমান্ড যেমন sort ব্যবহার করে ডেটা সনির্দিষ্টভাবে সাজানো যায়।

বাইরের sort কমান্ড ব্যবহার

AWK এর আউটপুট পাইপলাইনের মাধ্যমে sort কমান্ডে পাঠিয়ে সহজেই ডেটা সনির্দিষ্টভাবে সাজানো যায়।

awk '{print $1, $2}' filename.txt | sort -k2,2n

এখানে, filename.txt ফাইলের প্রথম এবং দ্বিতীয় কলাম প্রিন্ট করা হয়েছে এবং sort -k2,2n দ্বারা দ্বিতীয় কলাম অনুযায়ী সনির্দিষ্টভাবে সাজানো হয়েছে।

AWK এ Custom Sort Function তৈরি করা

AWK এ কাস্টম সোর্ট ফাংশন তৈরি করতে অ্যারে এবং একটি ফাংশন ব্যবহার করে আমরা নিজেরাই ডেটা সনির্দিষ্টভাবে সাজাতে পারি। নিচে একটি কাস্টম সোর্ট ফাংশনের উদাহরণ দেওয়া হলো।

উদাহরণ: কাস্টম সোর্ট ফাংশন

awk '
function bubble_sort(array, n) {
    for (i = 1; i <= n; i++) {
        for (j = i + 1; j <= n; j++) {
            if (array[i] > array[j]) {
                temp = array[i]
                array[i] = array[j]
                array[j] = temp
            }
        }
    }
}

BEGIN {
    # ডেটা অ্যারেতে যোগ করা
    data[1] = 42
    data[2] = 15
    data[3] = 27
    data[4] = 33
    data[5] = 19

    n = 5  # অ্যারের দৈর্ঘ্য

    # সোর্ট ফাংশন কল করা
    bubble_sort(data, n)

    # সনির্দিষ্টভাবে সাজানো ডেটা প্রিন্ট করা
    for (i = 1; i <= n; i++) {
        print data[i]
    }
}
'

বর্ণনা:

  • bubble_sort নামের একটি ফাংশন তৈরি করা হয়েছে, যা বুদ্বুদ সনির্দিষ্ট পদ্ধতি ব্যবহার করে অ্যারেকে সনির্দিষ্টভাবে সাজায়।
  • temp ভেরিয়েবল ব্যবহার করে অ্যারের মান অদলবদল করা হয়েছে।
  • BEGIN ব্লকে অ্যারে তৈরি করা হয়েছে এবং সনির্দিষ্টভাবে সাজানো ডেটা প্রিন্ট করা হয়েছে।

আউটপুট:

15
19
27
33
42

কাস্টম সোর্ট ফাংশন ব্যবহার করে ফাইল থেকে ডেটা সনির্দিষ্ট করা

আপনি ফাইল থেকে ডেটা পড়ে এবং অ্যারেতে সংরক্ষণ করে কাস্টম সোর্ট ফাংশন ব্যবহার করতে পারেন।

awk '
function bubble_sort(array, n) {
    for (i = 1; i <= n; i++) {
        for (j = i + 1; j <= n; j++) {
            if (array[i] > array[j]) {
                temp = array[i]
                array[i] = array[j]
                array[j] = temp
            }
        }
    }
}

{
    data[NR] = $1  # ফাইলের প্রতিটি লাইনের প্রথম কলাম অ্যারেতে যোগ করা
    count = NR
}

END {
    bubble_sort(data, count)  # সনির্দিষ্ট ফাংশন কল করা
    for (i = 1; i <= count; i++) {
        print data[i]
    }
}
' filename.txt

বর্ণনা:

  • ফাইল থেকে ডেটা পড়ে data অ্যারেতে সংরক্ষণ করা হয়েছে।
  • END ব্লকে bubble_sort ফাংশন ব্যবহার করে ডেটা সনির্দিষ্টভাবে সাজানো হয়েছে এবং প্রিন্ট করা হয়েছে।

সারসংক্ষেপ

AWK এ ডেটা সনির্দিষ্টভাবে সাজানোর জন্য বিল্ট-ইন ফাংশন না থাকলেও আমরা কাস্টম সোর্ট ফাংশন তৈরি করে ডেটা সনির্দিষ্ট করতে পারি। বাইরের sort কমান্ডের মাধ্যমে সহজভাবে ডেটা সনির্দিষ্ট করা যায়, তবে জটিল কাজের জন্য কাস্টম ফাংশন তৈরি করা প্রয়োজন হতে পারে। AWK এ অ্যারে এবং লজিক্যাল অপারেটর ব্যবহার করে আপনি আপনার নিজের সনির্দিষ্ট ফাংশন তৈরি করতে পারেন যা ডেটা প্রক্রিয়াকরণের ক্ষমতা বাড়ায়।

common.content_added_by

Unique Data Extraction এবং Duplicate Removal

213
213

Unique Data Extraction এবং Duplicate Removal

AWK তে ডেটা প্রক্রিয়াকরণের সময় সাধারণত ডুপ্লিকেট ডেটা মুছে ফেলা বা অনন্য ডেটা বের করা একটি গুরুত্বপূর্ণ কাজ। AWK এর শক্তিশালী ডেটা ম্যানিপুলেশন ক্ষমতা ব্যবহার করে সহজেই ইউনিক ডেটা এক্সট্রাকশন এবং ডুপ্লিকেট রিমুভাল করা যায়।


Unique Data Extraction

AWK তে অ্যারে ব্যবহার করে অনন্য ডেটা এক্সট্রাক্ট করা যায়। প্রতিটি ডেটা ইনডেক্স হিসেবে অ্যারেতে সংরক্ষণ করা হলে, ডুপ্লিকেট ডেটা স্বয়ংক্রিয়ভাবে একবারই সংরক্ষিত হয়।

উদাহরণ:

awk '!seen[$0]++ { print }' data.txt

ব্যাখ্যা:

  • !seen[$0]++ শর্তটি চেক করে যে $0 (সম্পূর্ণ লাইন) অ্যারেতে আগে ছিল কিনা।
  • প্রথমবার যখন কোনো লাইন দেখা যায়, তখন seen[$0] এর মান 0 থাকে এবং এটি প্রিন্ট হয়। পরবর্তীতে একই লাইন আবার পাওয়া গেলে শর্তটি মিথ্যা হয় এবং প্রিন্ট হয় না।

ফিল্ড ভিত্তিক Unique Extraction

awk '!seen[$1]++ { print $1 }' data.txt

এটি data.txt ফাইলের প্রথম কলামের অনন্য মানগুলো প্রিন্ট করবে।


Duplicate Removal

ডুপ্লিকেট ডেটা রিমুভ করতে AWK তে অ্যারের সাহায্যে সহজেই শর্ত ব্যবহার করা যায়।

উদাহরণ:

awk '!seen[$0]++' data.txt > unique_data.txt

ব্যাখ্যা:

  • !seen[$0]++ শর্তের মাধ্যমে data.txt ফাইলের ডুপ্লিকেট লাইন বাদ দেওয়া হয়েছে।
  • আউটপুট unique_data.txt ফাইলে সংরক্ষিত হয়েছে।

ফিল্ড ভিত্তিক Duplicate Removal

awk '!seen[$2]++ { print $0 }' data.txt

এটি data.txt ফাইলের দ্বিতীয় কলাম ভিত্তিক ডুপ্লিকেট লাইন বাদ দিয়ে প্রিন্ট করবে।


ব্যবহারিক উদাহরণ

ইমেল তালিকা থেকে অনন্য ইমেল বের করা:

awk '!seen[$1]++ { print $1 }' emails.txt

এটি emails.txt ফাইলের প্রথম কলাম থেকে অনন্য ইমেল বের করবে এবং প্রিন্ট করবে।

ডুপ্লিকেট নাম বাদ দিয়ে সম্পূর্ণ লাইন প্রিন্ট করা:

awk '!seen[$1]++' names.txt

এটি names.txt ফাইলের প্রথম কলাম ভিত্তিক ডুপ্লিকেট নাম বাদ দিয়ে সম্পূর্ণ লাইন প্রিন্ট করবে।


উপসংহার

AWK তে ইউনিক ডেটা এক্সট্রাকশন এবং ডুপ্লিকেট রিমুভাল একটি সহজ কিন্তু কার্যকরী কাজ। অ্যারের সাহায্যে ডেটার উপস্থিতি ট্র্যাক করে শর্ত প্রয়োগ করা যায় এবং শুধুমাত্র অনন্য মান প্রিন্ট করা যায়। AWK এর এই বৈশিষ্ট্য ব্যবহার করে ডেটা বিশ্লেষণ এবং প্রক্রিয়াকরণ আরও কার্যকর করা সম্ভব।

common.content_added_by

Numerical এবং Alphabetical Sorting এর উদাহরণ

196
196

AWK এ Numerical এবং Alphabetical Sorting এর উদাহরণ

AWK এ বিল্ট-ইনভাবে সরাসরি সোর্টিং ফাংশন নেই, তবে AWK স্ক্রিপ্টের মাধ্যমে সহজেই Numerical এবং Alphabetical সোর্টিং করা যায়। নিচে Numerical এবং Alphabetical সোর্টিং করার বিভিন্ন উদাহরণ দেওয়া হলো।

১. Numerical Sorting

Numerical সোর্টিং করার জন্য AWK এর সাথে Shell কমান্ড sort ব্যবহার করা যায়। এটি ফাইলের সংখ্যা অনুযায়ী সঠিকভাবে সজ্জিত করতে সহায়তা করে।

উদাহরণ: Numerical সোর্টিং

awk '{print $2}' data.txt | sort -n

এখানে, data.txt ফাইলের দ্বিতীয় কলাম প্রিন্ট করে sort -n কমান্ডের মাধ্যমে সংখ্যাগতভাবে সজ্জিত করা হয়েছে।

  • -n অপশন: সংখ্যাগত সজ্জিত করতে ব্যবহৃত হয়।

২. Alphabetical Sorting

Alphabetical সজ্জিত করার জন্য AWK এর সাথে sort কমান্ড ব্যবহার করা যায়।

উদাহরণ: Alphabetical সজ্জিত

awk '{print $1}' data.txt | sort

এখানে, data.txt ফাইলের প্রথম কলাম প্রিন্ট করে sort কমান্ডের মাধ্যমে অক্ষরানুক্রমিকভাবে সজ্জিত করা হয়েছে।

৩. AWK এর মাধ্যমে Custom Sorting (Numerical)

AWK স্ক্রিপ্টের মাধ্যমে সরাসরি Numerical সজ্জিত করা সম্ভব, তবে এটি একটু জটিল হতে পারে। নিচে একটি উদাহরণ দেওয়া হলো যেখানে Numerical সজ্জিত করার জন্য একটি কাস্টম স্ক্রিপ্ট ব্যবহার করা হয়েছে।

উদাহরণ: Custom Numerical Sorting

awk '{
    numbers[NR] = $1  # প্রতিটি লাইনের প্রথম কলাম অ্যারেতে রাখা হচ্ছে
}
END {
    # অ্যারের উপর সোজাসুজি সজ্জিত প্রয়োগ (bubble sort)
    for (i = 1; i <= NR; i++) {
        for (j = i + 1; j <= NR; j++) {
            if (numbers[i] > numbers[j]) {
                temp = numbers[i]
                numbers[i] = numbers[j]
                numbers[j] = temp
            }
        }
    }
    for (i = 1; i <= NR; i++) {
        print numbers[i]  # সজ্জিত অ্যারের মান প্রিন্ট করা হচ্ছে
    }
}' data.txt

এখানে, data.txt ফাইলের প্রথম কলাম Numerical সজ্জিত করা হয়েছে এবং bubble sort অ্যালগরিদম ব্যবহার করে সজ্জিত করা হয়েছে।

৪. AWK এর মাধ্যমে Custom Sorting (Alphabetical)

AWK ব্যবহার করে Alphabetical সজ্জিত করাও সম্ভব।

উদাহরণ: Custom Alphabetical Sorting

awk '{
    words[NR] = $1  # প্রতিটি লাইনের প্রথম কলাম অ্যারেতে রাখা হচ্ছে
}
END {
    # অ্যারের উপর Alphabetical সজ্জিত প্রয়োগ (bubble sort)
    for (i = 1; i <= NR; i++) {
        for (j = i + 1; j <= NR; j++) {
            if (words[i] > words[j]) {
                temp = words[i]
                words[i] = words[j]
                words[j] = temp
            }
        }
    }
    for (i = 1; i <= NR; i++) {
        print words[i]  # সজ্জিত অ্যারের মান প্রিন্ট করা হচ্ছে
    }
}' data.txt

এখানে, data.txt ফাইলের প্রথম কলাম Alphabetical সজ্জিত করা হয়েছে।


সারসংক্ষেপ

AWK এর সাথে Shell কমান্ড sort ব্যবহার করে সহজে Numerical এবং Alphabetical সজ্জিত করা যায়। AWK এর মধ্যে কাস্টম সজ্জিত অ্যালগরিদম তৈরি করে নির্দিষ্ট ডেটা প্রক্রিয়াকরণ কাজেও ব্যবহার করা সম্ভব। এর ফলে বড় ডেটাসেটের মধ্যে সঠিকভাবে সজ্জিত ফলাফল পাওয়া যায়।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion